Users of network devices connected to networks, such as the Internet, access remote devices, such as web servers, to provide the users with information. Between the user""s network device and the remote devices are various networks, PSTNs (Public Switched Telephone Network), routers, subnet devices, etc. One device that allows users to connect to a PSTN is a device referred to as a gateway (GW), or Network Access Server (NAS), which is typically a router providing various network communication protocols, such as ISDN (Integrated Services Digital Network), POTS (Plain Old Telephone System), and other modem and non-modem communication protocols. At various locations around a network are nodes, which can transmit and/or receive communications to/from other nodes on the network. Nodes include devices such as computers, routers, telephones, cell-phones, fax machines, hand-held network devices, etc., and/or software, residing on any of the aforementioned devices, and multiple software modules, in cases where software operates in parallel on a single device.
A typical GW has a fixed number of ports, one hundred, for instance. Each port allows both dial-in and dial-out service. Once a port is allocated for dial-in service, the port remains so until the connection from a node to the GW (or, more precisely, from a first node to a second node via the GW) is released. The same is true for a port allocated for dial-out service, where the port remains allocated for dial-out service until the connection from the GW to a remote network node is released. For example, a port is allocated for dial-in service when a node, such as a web browser, dials into the GW to access a remote web server to which the GW provides service. A GW port is allocated for dial-out service when connection is made from the GW to a node, such as a web server, to which the GW provides access, possibly through other nodes, such as routers.
Dial-in service is a relatively mature technology. Dial-in service technology presently allows connections to non-allocated ports to be established automatically. An example of dial-in service technology is a so-called xe2x80x9chuntxe2x80x9d algorithm, which is commonly used in automated 1-800-telephone systems. When a call is received at a 1-800-service center, a non-allocated port is automatically allocated to the incoming call. This automated connectivity technology allows service providers (e.g., Internet service providers (ISPs)) to over-subscribe the number of users subscribed to access the Internet through the ISP""s GW. Over-subscription of dial-in service is possible because of the mature automated connectivity technology and an assumption that not all of the subscribed users will attempt to connect through the GW at the same time. ISPs may over-subscribe dial-in service customers to GW ports by a ratio of 5, 10, 15, or more, to 1. In the event that all GW ports are being used, further dial-in customers receive a xe2x80x9cconnection failurexe2x80x9d message, though this case has become rare due to the above-described dial-in service technology.
Dial-out service is not as mature a technology as dial-in service. In dial-out service, a GW has a static route table of nodes that are reachable by the GW. But, because the GW has a limited number of ports, GWs typically assign/reserve ports for dial-out service to specific routes or nodes. In that way, when nodes dial-in and request dial-out service to other nodes, the GW has ports available for the dial-out service.
If a PSTN network is coupled to fifty remote subnets, for example, the GW""s ,static route table includes information to access each of the fifty remote subnets. However, because the GW has a limited number of ports, as discussed above, the ISP must make some decisions about GW configuration in order to prevent customers attempting to use dial-out service from receiving a xe2x80x9cconnection failure/remote server busyxe2x80x9d or other such message. To this end, ISPs typically have one GW configured to provide only dial-in service and several (more than necessary) GWs to provide dial-out service.
The problem is that, presently, GWs are not inherently flexible in their scalability and fail-safe operation. Each GW has its own static route table, but is unable to share dial-out route entries in the static route table with other GWs to dynamically scale the number of ports available to support its static route table entries. Without such dynamic scalability, ISPs must have an over-abundance of GWs to support expected peak usage, which is increasing at a rapid pace with the emergence of web-based, hand-held devices, including wireless phones, and one-to-many media distributions by information providers to end users. Each hand-held device requires a dial-out service port, and each information provider requires access to each media distribution destination via a dial-out service port. GWs are expensive pieces of equipment, so it is in the ISP""s best interest to have GWs be flexible such that the number of GWs dedicated to dial-out service is minimized, but optimized.
The present invention includes forwarding dial-out service provided by a gateway to reduce congestion in a data communication network. For network nodes that access a first gateway for dial-out service, the first gateway determines availability of ports providing dial-out service. Information corresponding to a dial-out route that is determined by the first gateway to be causing congestion, or will be causing congestion in the future, is transferred from the first gateway to a second gateway. Transferring the dial-out route information allows the gateways to forward dial-out service. Static route transfers among gateways may also result in dynamically, and automatically, scaling dial-out service provided by the first gateway.
The second gateway may access a central database storing static routes corresponding to the transferred dial-out route information. The central database is typically stored on a server providing security services. These security services may include access, authentication, and authorization.
The first gateway may issue a request to the second gateway prior to transferring the dial-out route. The first gateway determines whether the second gateway wishes to accept the dial-out route. The first gateway may also transfer a respective priority level parameter associated with the dial-out route. Upon accepting the dial-out route, the second gateway advertises the transferred dial-out route and a respective priority level to effectuate the dial-out route transfer. In addition to transferring an optional respective priority level parameter, the first gateway may also transfer a termination parameter to limit dial-out route transfer time. The termination parameters may include a time-to-live parameter, delete-after-complete parameter, or delete-upon-reboot parameter.
In an alternate embodiment, a network node, which is typically another gateway or central gateway monitor, determines a state of dial-out route service of the first gateway. The network node retrieves at least one dial-out route reachable from the first gateway from a central database storing static routes. The retrieved dial-out route is assigned to another gateway to provide service to the dial-out route. The node continually re-assesses the state of dial-out route service of the first gateway to restore the retrieved dial-out route. This embodiment monitors gateways to ensure they are functioning properly and provides uninterrupted dial-out service to routes supported by the first gateway until such time as the first gateway can again provide dial-out route service to the retrieved dial-out route.